背包客旅游自助地图——以广州市为例
2023/10/09 17:58:00
背包客旅游自助地图——以广州市为例
1.引言
1.1文档目的
编写此文档有两个目的,一个是以文档的形式对项目需求进行描述和界定,以便于和用户达成对需求理解的一致认可;另一个目的是供项目团队成员更好的了解需求情况,使本次系统开发的任务和目的更加明确,同时作为本次比赛的跟踪、评审及评委老师、指导老师在比赛系统项目开发设计过程中监督或者检查比赛结果的主要依据。
文档主要面向小组成员、评委老师、指导老师,在现有研究资料的基础上进行需求描述,供评委老师直观了解本系统提供的需求服务,小组成员按照此进行系统开发设计。
1.2术语与缩写解释
1.2.1背包客概述
背包客英文名为Backpacker,是由Backpacking一词演变而来,泛指三五成群或者单枪匹马四处游逛的人,也就是背着背包做长途自助旅行的人,目的在于通过游历认识世界,认识自我,挑战极限等,背包客有自己的喜好,有自己的个性,有自己的风格。
1.2.2自助旅游概述
自助旅游使所有的花费都可依自己的喜好来支配,行程可弹性调整,又可深入了解当地民情风俗。自助旅游绝非玩得多、花得少的旅游方式,而是一种在同一地方花上较多的时间深入了解该地的特色,接触当地的人与事,看自己想看见的东西,走自己想走的路。
2.需求分析
2.1系统开发使用软件/操作平台:
| 环境 | 配置 |
|---|---|
| 体系结构 | B/S架构; |
| 开发平台 | Windows、ESRI Leaflet等; |
| 开发工具 | Visual Studio 2019;PyCharm 2021;Dreamweaver;IDEA |
| 开发语言 | JavaScript;Python;HTML;Java |
| 运行环境 | 硬件参数:CPU主频:1.6GHz;内存:8G; 硬盘:512G; 软件参数:Google浏览器98以上;Windows 10; |
| 数据库 | PostgreSQL; |
2.2系统背景介绍
自改革开发以来,我国社会经济高速发展,人民生活水平不断提高,旅游的形式也随之越来越多样化,出现了各样满足不同人群不同需求的旅游形式,当中自助旅游最为突出,深受广大旅游爱好者的喜爱,又以背包客最为典型。作为当代旅游的一种形式,背包客旅游在国际上的发展速度极快,超出当今世界旅游发展速度60%。
随着消费观念的转变和经济收入的提高,旅游人员构成广泛,各行各业和社会阶层都有相当大数量的人加入到背包自助旅行的行列中来。同时,人们对于第三产业的消费需求也不断上升,尤其是旅游业,不断涌现出各种各样的旅行社与相关平台。旅游社是一种向公众提供关于可能的旅行、居住和相关服务,包括服务酬金和条件的信息的行业机构,其根据规划的固定路线不断组织旅游人员进行游览,让游客不用费心费力去进行对行程的规划。而相关的旅游平台如马蜂窝、携程等网站则提供了相关的旅游信息,如交通订票、住宿预约、景点开放信息等等,可为游客对其行程的规划扩大消息面,提供更有力的保障。
但这些旅行社与平台均存在其不同的弊端,比如旅行社的线路较为固定,无法根据游客喜好自定义地改变行程;旅游平台消息面广,但也存在信息繁杂、难以整合等问题,用户对其行程的规划时需自己查询很多交通、住宿、景点信息,并从中进行人工的筛选,手动记录与串联,同时其私人定制化的服务通常也伴随着较为高额的收费,难以推广。
而背包客追求认识世界,认识自我,挑战极限的观念,似乎天生与上述旅行社以及各类平台存在矛盾,也正是由于背包客这样的特质,同时存在以下问题:
但是在我国背包自助旅游一种新的旅游形式,在发展过程中还存在以下问题:
大部分背包客对当地风景名胜、文化胜地了解较为不深入,难以深刻体会当地文化特色和风俗习惯;
大部分背包客为规避旅途中的风险,选择重复前人的旅行经验,缺乏一定的自由度;
背包客旅行路线规划中,查阅资料、安排行程等前期工作相对繁琐,使得背包客入门门槛较高;
大量的旅游资源、紧促的旅游时间以及人生地不熟等原因,导致背包客面临选择困难或者不能更好的选择出适合自己的旅游路线;
针对国内对于旅游路线用户自定义的平台较少这一现象,本项目旨在完善这一空缺,建立一个助力用户规划旅行计划并提供旅行相关服务的web端旅游自助地图平台。
2.3 系统目标
本平台将应用在第三产业的旅游业中,随着我国GDP的增长,有旅行需求的人不断增多,市场逐渐扩大。平台的用户群体聚焦在年轻人中,作为二十一世纪的青年,他们所接触到的世界更为广阔,接受信息的速度更快,其逐渐开始不仅仅满足于传统的旅行包办,而是选择去享受做计划的过程。
但另一方面,由于网络信息的繁杂,用户对于某些信息可能会出现错失、错信的情况,且做计划的过程较为繁琐,需要人为的记录与调用,因此导致该计划可能无法很好地落实在旅行过程中。同时,景点转换的交通也是用户进行计划较为关注的方面之一,旅行往往是到达一个陌生的城市,游客游览的过程中可能会迷路、分不清方向的情况,因此需要更为周全的准备,但交通状况较为复杂,更具变化性。此外,众多旅游社交平台网站上积累了不少用户对旅游景点的评论信息,可以为游客制定旅游计划提供参考。
针对以上问题,本平台重点针对自助旅游者,将帮助用户简化制定旅游计划的流程,完善计划的细节,根据用户选定的地点等,自动生成一条贯穿既定地点的安全性高、实用性强、方便且快捷的路线。此外,还计划利用自然语言处理技术提取各景点在线评论信息,分析景点的情感认知特征,给用户呈现一份完善的旅行计划,如为用户说明建议游玩时间、景点热门程度等的相关指标与参数。
2.4 技术框架
在数据层面,本系统采用PostgreSQL服务器关系型数据库,结合Python网络爬虫技术,调用高德API;
在服务层面,Web服务中结合Vue-CLI与SpringBoot,利用ArcGis Server中地图服务于GP服务,实现本系统的服务需求;
在应用层面,本系统实现了“实时获取评论”、“景点信息统计”、“动态展示评价”这三方面的数据服务;提供了“属性筛选”、“热点分析”、“评论情感分析”这三方面数据分析功能;能够采用“展示景点特点”、“最优路线规划”、“按需提供建议”这三个功能为背包客提供辅助决策。
3.总体设计
3.1 功能设计
3.2 数据库设计
3.2.1 数据库概述
本系统采用PostgreSQL配备拓展postgis以充当系统的数据库。PostgreSQL是一个强大的对象关系数据库管理系统(ORDBMS)。它是在BSD风格的许可下发布的,因此是自由和开放源代码的软件。PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。其支持几何数据存储,以geometry或geography数据类型存储几何数据,并支持OGC的标准。PostGIS提供了空间索引,大大提高了查询的速度,还以空间函数的方式,提供了基础的空间分析功能,为分析几何信息、确定空间关系和操作几何图形提供了一套完整的空间函数。因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的”企业级”特性以及开放源代码的标准。
对多个用户的支持,复杂的即时查询和对于大型数据集的高性能表现,是空间数据库比文件系统的优越之处。
3.2.2 数据库结构
在本系统中,根据项目需求共设计了user、route、jingdian_gaikuang、picUrl、score_emotion五个表,其中jingdian_gaikuang、picUrl、score_emotion都以poiID为主键,user以userName为主键。
- user表
| 字段名 | 数据类型 | 备注 |
|---|---|---|
| userName | text | 登录名 |
| password | text | 登录密码 |
| sex | text | 性别 |
| birth | date | 出生日期 |
- route表
| 字段名 | 数据类型 | 备注 |
|---|---|---|
| userName | text | 用户登录名 |
| routeName | text | 用户保存的路线名称 |
| position | text | Json数组形式,含路线上景点的名字、坐标和备注信息 |
- jingdian_gaikuang表
| 字段名 | 数据类型 | 备注 |
|---|---|---|
| poiID | text | 景点编号 |
| name | text | 景点名称 |
| English_name | text | 景点英文名称 |
| GCJ02_lng | double precision | 经度(国家2000坐标系) |
| GCJ02_lat | double precision | 纬度(国家2000坐标系) |
| playSpendTime | text | 建议游玩时间 |
| opentime | text | 开放时间 |
| opentime_tips | text | 开放时间提示 |
| tickets | text | 票价 |
| tel | text | 联系电话 |
| introduction | text | 景点介绍 |
| trafficDetail | text | Json形式,公交地铁信息 |
| bigTrafficDetail | text | Json数组形式,详细的公交地铁路线信息 |
- picUrl表
| 字段名 | 数据类型 | 备注 |
|---|---|---|
| poiID | text | 景点编号 |
| picID | text | 图片url编号 |
| name | text | 景点名称 |
| address | text | 景点地址 |
| picUrl | text | 图片url |
- score_emotion表
| 字段名 | 数据类型 | 备注 |
|---|---|---|
| poiID | text | 景点编号 |
| name | text | 景点名称 |
| general | real | 整体 |
| environment | real | 环境 |
| price | real | 价格 |
| facility | real | 设备 |
| others | real | 其他 |
3.3 关键技术
3.3.1 Vue+SpringBoot+PostgreSQL
Vue是一个构建用户界面(UI)的[渐进式]JavaScript框架,免除了原生JavaScript中的DOM操作,简化书写,同时其基于MVVM(Model-View_ViewModel)思想,实现数据双向绑定;Spring Boot是基于Spring4的框架,在继承Spring优点的同时,大大简化了Spring应用的初始搭建以及开发过程。内部嵌入了Servlet,不再需要单独安装容器,可直接部署运行项目。Postgresql是当下先进的、自由的、完全免费的开源关系型数据库,同时其具备多线程,处理性能高,可以很好地支持本系统的业务功能。
Vue+SpringBoot+PostgreSQL的前端、后端以及数据库的完整配置,可保证系统在前端页面在浏览器渲染的完备性以及后端接口的稳定性,Vue+SpringBoot作为目前较为热门的前后端分离式开发的组合,其低成本高效率的特性可以达到简化开发、提升效率的目的。
3.3.2 情感分析
文本情感分析(Sentiment Analysis)是指利用自然语言处理和文本挖掘技术,对带有情感色彩的主观性文本进行分析、处理和抽取的过程。本系统中采用自然语言处理NLP模型(Natural Language Processing)对景点评论进行情感分析,该模型主要依赖于已经建立的“情感词典”,对词组赋予情感信息,将词组的情感正负向进行量化,从而判断具体文本所表达的情感。基于统计方法的“情感词典”的建立是情感分类的前提和基础,利用语义相似度计算方法计算词语与基准情感词集的语义相似度,进而推断该文本的情感倾向。此外,还可以建立专门的领域词典,以提高情感分类的准确性,比如建立新的网络词汇词典,来更准确的把握新词的情感倾向。
本系统基于情感词典的方法,先对文本进行分词和停用词处理等预处理,再利用预先构建好的情感词典,对文本进行字符串匹配,从而挖掘正面和负面信息。其大致流程如图所示:
4.作品亮点
4.1旅行路线自定义
背包客可以进行短时间旅游路线自主规划,并且可在可视化界面中对系统推荐的路线进行自定义修改;
4.2全市景点在线浏览
背包客可在此系统中浏览全市景点信息,了解各个旅游景点基本信息;
4.3旅行选址建议
本系统可对背包客短时间旅游路线选址提供具有建设性的建议;
4.4结合情感分析技术,深入了解全市各景点
采用Python网络爬虫技术,对广州市各景点的社交网络评论进行爬取,并对爬取文本从“生态环境”、“门票价格”、“配套设施”、“其他特色”采用情感分析技术分别进行得分计算,统计得出“总体得分”,并制作五维图供背包客对景点深入了解。